<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.5"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SWM34S_LVGL7.11_SWMUI: C:/Users/DELL/Desktop/Commit/lvgl/SWM34S_LVGL7.11_SWMUI_20230515/APP/Common Module/posix_fsm.h 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">SWM34S_LVGL7.11_SWMUI<span id="projectnumber">&#160;V7.9</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.5 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_0ca16891106f5a3e9ad635a0d6c5f98f.html">APP</a></li><li class="navelem"><a class="el" href="dir_df4e0e4e72f77ab290fd1a24f190250a.html">Common Module</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">结构体</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#enum-members">枚举</a> &#124;
<a href="#func-members">函数</a>  </div>
  <div class="headertitle"><div class="title">posix_fsm.h 文件参考</div></div>
</div><!--header-->
<div class="contents">

<p>有限状态机实现  
<a href="#details">更多...</a></p>
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
<code>#include &quot;<a class="el" href="pthread__lock_8h_source.html">pthread_lock.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
posix_fsm.h 的引用(Include)关系图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h__incl.png" border="0" usemap="#a_c_1_2_users_2_d_e_l_l_2_desktop_2_commit_2lvgl_2_s_w_m34_s___l_v_g_l7_811___s_w_m_u_i__20230515_2_a_p_p_2_common_01_module_2posix__fsm_8h" alt=""/></div>
<map name="a_c_1_2_users_2_d_e_l_l_2_desktop_2_commit_2lvgl_2_s_w_m34_s___l_v_g_l7_811___s_w_m_u_i__20230515_2_a_p_p_2_common_01_module_2posix__fsm_8h" id="a_c_1_2_users_2_d_e_l_l_2_desktop_2_commit_2lvgl_2_s_w_m34_s___l_v_g_l7_811___s_w_m_u_i__20230515_2_a_p_p_2_common_01_module_2posix__fsm_8h">
<area shape="rect" title="有限状态机实现" alt="" coords="5,5,229,75"/>
<area shape="rect" title=" " alt="" coords="105,196,170,221"/>
<area shape="rect" title=" " alt="" coords="83,123,151,148"/>
<area shape="rect" href="pthread__lock_8h.html" title="互斥锁实现" alt="" coords="176,123,283,148"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
此图展示该文件直接或间接的被哪些文件引用了:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h__dep__incl.png" border="0" usemap="#a_c_1_2_users_2_d_e_l_l_2_desktop_2_commit_2lvgl_2_s_w_m34_s___l_v_g_l7_811___s_w_m_u_i__20230515_2_a_p_p_2_common_01_module_2posix__fsm_8hdep" alt=""/></div>
<map name="a_c_1_2_users_2_d_e_l_l_2_desktop_2_commit_2lvgl_2_s_w_m34_s___l_v_g_l7_811___s_w_m_u_i__20230515_2_a_p_p_2_common_01_module_2posix__fsm_8hdep" id="a_c_1_2_users_2_d_e_l_l_2_desktop_2_commit_2lvgl_2_s_w_m34_s___l_v_g_l7_811___s_w_m_u_i__20230515_2_a_p_p_2_common_01_module_2posix__fsm_8hdep">
<area shape="rect" title="有限状态机实现" alt="" coords="129,5,353,75"/>
<area shape="rect" href="load__mv_8c.html" title="播放 avi / wav 音视频" alt="" coords="5,123,229,192"/>
<area shape="rect" href="posix__fsm_8c.html" title="有限状态机实现" alt="" coords="253,123,477,192"/>
</map>
</div>
</div>
<p><a href="posix__fsm_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
结构体</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsm__handle__t.html">fsm_handle_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsm__t.html">fsm_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
类型定义</h2></td></tr>
<tr class="memitem:afbb49b7791a06820386f19c692dd5cc0"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="posix__fsm_8h.html#afbb49b7791a06820386f19c692dd5cc0">fsm_event_cb</a>) (void *)</td></tr>
<tr class="memdesc:afbb49b7791a06820386f19c692dd5cc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">触发事件执行动作回调  <a href="posix__fsm_8h.html#afbb49b7791a06820386f19c692dd5cc0">更多...</a><br /></td></tr>
<tr class="separator:afbb49b7791a06820386f19c692dd5cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
枚举</h2></td></tr>
<tr class="memitem:a21f736acd6f712522de85c096c7ec091"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a> { <a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091aabaf50596722b188e2a14557e0de4630">FSM_RT_OK</a> = 0
, <a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091accae8a0539fcc80bbcd302dcb80c1dc2">FSM_VIE_LOCK</a>
, <a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091ad2a5a798ec70b449e8d1b2e3068f7af9">FSM_GO_TRAP</a>
, <a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091a1aeca4c4cd9f6ffa7812027916eedd84">FSM_UNKNOWN</a>
 }</td></tr>
<tr class="separator:a21f736acd6f712522de85c096c7ec091"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a02397a7a821d3ddd678b34eea5e94054"><td class="memItemLeft" align="right" valign="top"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="posix__fsm_8h.html#a02397a7a821d3ddd678b34eea5e94054">fsm_state_get</a> (<a class="el" href="structfsm__t.html">fsm_t</a> *fsm, int *state)</td></tr>
<tr class="memdesc:a02397a7a821d3ddd678b34eea5e94054"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取当前状态  <a href="posix__fsm_8h.html#a02397a7a821d3ddd678b34eea5e94054">更多...</a><br /></td></tr>
<tr class="separator:a02397a7a821d3ddd678b34eea5e94054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6b5bc8fb41f77bb9f814eba2865387"><td class="memItemLeft" align="right" valign="top"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="posix__fsm_8h.html#a2c6b5bc8fb41f77bb9f814eba2865387">fsm_state_set</a> (<a class="el" href="structfsm__t.html">fsm_t</a> *fsm, int state)</td></tr>
<tr class="memdesc:a2c6b5bc8fb41f77bb9f814eba2865387"><td class="mdescLeft">&#160;</td><td class="mdescRight">切换当前状态  <a href="posix__fsm_8h.html#a2c6b5bc8fb41f77bb9f814eba2865387">更多...</a><br /></td></tr>
<tr class="separator:a2c6b5bc8fb41f77bb9f814eba2865387"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a249b00e99d18d8fd190204d78b2eab9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="posix__fsm_8h.html#a249b00e99d18d8fd190204d78b2eab9f">fsm_event_handler_get</a> (<a class="el" href="structfsm__t.html">fsm_t</a> *fsm, int event, <a class="el" href="posix__fsm_8h.html#afbb49b7791a06820386f19c692dd5cc0">fsm_event_cb</a> *action)</td></tr>
<tr class="memdesc:a249b00e99d18d8fd190204d78b2eab9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">通过该方法获取在当前状态下, 指定事件到来时的对应动作处理回调  <a href="posix__fsm_8h.html#a249b00e99d18d8fd190204d78b2eab9f">更多...</a><br /></td></tr>
<tr class="separator:a249b00e99d18d8fd190204d78b2eab9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b1b28d5d26c97b4c934f7822c1a7a04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="posix__fsm_8h.html#a0b1b28d5d26c97b4c934f7822c1a7a04">fsm_event_exec</a> (<a class="el" href="structfsm__t.html">fsm_t</a> *fsm, int event, void *data)</td></tr>
<tr class="memdesc:a0b1b28d5d26c97b4c934f7822c1a7a04"><td class="mdescLeft">&#160;</td><td class="mdescRight">当指定事件触发时, 状态机会自动寻找并调用对应的动作处理回调, 从而完成状态转移  <a href="posix__fsm_8h.html#a0b1b28d5d26c97b4c934f7822c1a7a04">更多...</a><br /></td></tr>
<tr class="separator:a0b1b28d5d26c97b4c934f7822c1a7a04"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p >有限状态机实现 </p>
<p >/ </p><dl class="section since"><dt>自从</dt><dd>Change Logs: Date Author Notes 2022-12-08 lzh the first version </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>使用方法 :</dd></dl>
<p>1.依据用户需求, 建立 fsm_event_handle 表, 枚举事件/状态;</p>
<p >2.创建 <a class="el" href="structfsm__t.html">fsm_t</a> 对象, 并将 fsm_event_handle 与之绑定;</p>
<p >3.根据用户程序需求设定不同 event 以调用 <a class="el" href="posix__fsm_8h.html#a0b1b28d5d26c97b4c934f7822c1a7a04" title="当指定事件触发时, 状态机会自动寻找并调用对应的动作处理回调, 从而完成状态转移">fsm_event_exec()</a> 执行对应动作;</p>
<p >约定 &lt;当前状态 + 一个事件&gt; 只能有一个 动作回调 ,一般会设置一个事件为特权级事件(常用于挂起)</p>
<dl class="section attention"><dt>注意</dt><dd></dd></dl>
<p>THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN- -ECTION WITH THEIR PRODUCTS.</p>
<dl class="section copyright"><dt>版权所有</dt><dd>2012 Synwit Technology </dd></dl>

<p class="definition">在文件 <a class="el" href="posix__fsm_8h_source.html">posix_fsm.h</a> 中定义.</p>
</div><h2 class="groupheader">类型定义说明</h2>
<a id="afbb49b7791a06820386f19c692dd5cc0" name="afbb49b7791a06820386f19c692dd5cc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbb49b7791a06820386f19c692dd5cc0">&#9670;&#160;</a></span>fsm_event_cb</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* fsm_event_cb) (void *)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>触发事件执行动作回调 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">void</td><td>* : 事件参数 </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
  <table class="retval">
    <tr><td class="paramname">int</td><td>: 转移状态 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="posix__fsm_8h_source.html">posix_fsm.h</a> 第 <a class="el" href="posix__fsm_8h_source.html#l00054">54</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">枚举类型说明</h2>
<a id="a21f736acd6f712522de85c096c7ec091" name="a21f736acd6f712522de85c096c7ec091"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21f736acd6f712522de85c096c7ec091">&#9670;&#160;</a></span>fsm_result</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a21f736acd6f712522de85c096c7ec091aabaf50596722b188e2a14557e0de4630" name="a21f736acd6f712522de85c096c7ec091aabaf50596722b188e2a14557e0de4630"></a>FSM_RT_OK&#160;</td><td class="fielddoc"><p >成功 </p>
</td></tr>
<tr><td class="fieldname"><a id="a21f736acd6f712522de85c096c7ec091accae8a0539fcc80bbcd302dcb80c1dc2" name="a21f736acd6f712522de85c096c7ec091accae8a0539fcc80bbcd302dcb80c1dc2"></a>FSM_VIE_LOCK&#160;</td><td class="fielddoc"><p >竞争锁 </p>
</td></tr>
<tr><td class="fieldname"><a id="a21f736acd6f712522de85c096c7ec091ad2a5a798ec70b449e8d1b2e3068f7af9" name="a21f736acd6f712522de85c096c7ec091ad2a5a798ec70b449e8d1b2e3068f7af9"></a>FSM_GO_TRAP&#160;</td><td class="fielddoc"><p >陷入陷阱 </p>
</td></tr>
<tr><td class="fieldname"><a id="a21f736acd6f712522de85c096c7ec091a1aeca4c4cd9f6ffa7812027916eedd84" name="a21f736acd6f712522de85c096c7ec091a1aeca4c4cd9f6ffa7812027916eedd84"></a>FSM_UNKNOWN&#160;</td><td class="fielddoc"><p >未知错误 </p>
</td></tr>
</table>

<p class="definition">在文件 <a class="el" href="posix__fsm_8h_source.html">posix_fsm.h</a> 第 <a class="el" href="posix__fsm_8h_source.html#l00042">42</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="a02397a7a821d3ddd678b34eea5e94054" name="a02397a7a821d3ddd678b34eea5e94054"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02397a7a821d3ddd678b34eea5e94054">&#9670;&#160;</a></span>fsm_state_get()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a> fsm_state_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structfsm__t.html">fsm_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>获取当前状态 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fsm</td><td>: 状态机句柄 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">state</td><td>: 当前状态 </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
  <table class="retval">
    <tr><td class="paramname">详见</td><td>fsm_result 枚举 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="posix__fsm_8c_source.html">posix_fsm.c</a> 第 <a class="el" href="posix__fsm_8c_source.html#l00038">38</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_cgraph.png" border="0" usemap="#aposix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_cgraph" alt=""/></div>
<map name="aposix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_cgraph" id="aposix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_cgraph">
<area shape="rect" title="获取当前状态" alt="" coords="5,31,109,56"/>
<area shape="rect" href="pthread__lock_8h.html#a5b24d442627e9343245d4a44daa81ada" title="加锁" alt="" coords="165,5,303,31"/>
<area shape="rect" href="pthread__lock_8h.html#a4f08153d45685a64dd5901e150b988ef" title="解锁" alt="" coords="157,55,311,80"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_icgraph.png" border="0" usemap="#aposix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_icgraph" alt=""/></div>
<map name="aposix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_icgraph" id="aposix__fsm_8h_a02397a7a821d3ddd678b34eea5e94054_icgraph">
<area shape="rect" title="获取当前状态" alt="" coords="2129,209,2233,235"/>
<area shape="rect" href="load__mv_8c.html#ab03d657977c16952b0a16e589fbd6e71" title="结束播放, 释放所占用的资源" alt="" coords="1971,132,2071,157"/>
<area shape="rect" href="load__mv_8c.html#a2877cfdf885996dd8831a2a37660352d" title="暂停播放" alt="" coords="1965,259,2077,284"/>
<area shape="rect" href="load__mv_8c.html#a913dfd46ff07efd13423f77b143fd156" title="恢复播放" alt="" coords="1961,209,2081,235"/>
<area shape="rect" href="load__mv_8c.html#a7dd8d59698dc593d41250fc09a0ae5a5" title="打开源文件启动播放" alt="" coords="1797,5,1891,31"/>
<area shape="rect" href="ui__boot_8c.html#ad915e3f7b5aab86e375414a5844c500a" title="挂载文件系统以完成本地素材检测, 并将其导入至 SDRAM , 同时实现开机动画/视频效果" alt="" coords="1621,32,1685,57"/>
<area shape="rect" href="ui__event_8c.html#a00e13aa90322d785281749032e468a01" title="清理首页的视频" alt="" coords="1163,307,1325,332"/>
<area shape="rect" href="ui__event_8c.html#a201743dfea0db58797dca624b7d9c5e5" title="退出 M0 / M4 SHOW 页前的清理、释放资源" alt="" coords="1775,107,1913,132"/>
<area shape="rect" href="ui__event_8c.html#a327a85392000232adf5057ea3bcd0322" title="退出 PP 页前的清理、释放资源" alt="" coords="1189,157,1299,183"/>
<area shape="rect" href="main_8c.html#a8f1efe6291a27ae9b326f0c8a236c102" title="Go to User App Execute" alt="" coords="104,107,179,132"/>
<area shape="rect" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="C_Main" alt="" coords="5,107,56,132"/>
<area shape="rect" href="ui__event_8c.html#a58a9ebadd92a9ee7765fea889ed07073" title="主桌面下 Home 页四个跳转按钮的事件回调" alt="" coords="956,381,1115,407"/>
<area shape="rect" href="ui__event_8c.html#a40e95f44ce28a5bf2fb6a5d8cc725232" title="主桌面下 Home 页的 LOGO 按钮回调(视频)" alt="" coords="960,332,1111,357"/>
<area shape="rect" href="ui__event_8c.html#a4f51ebc6c5bd5d4bdc6e80e1d5b3f554" title="tabview 的事件回调" alt="" coords="974,283,1097,308"/>
<area shape="rect" href="ui__event_8c.html#ac0feb967035c8b6b1949cd42c92cbc69" title="主桌面 Home 页注册事件回调" alt="" coords="712,332,908,357"/>
<area shape="rect" href="setup__home__page__home_8c.html#a236ec2e4ba252c597a6c8d695eb5e825" title="创建 Home 页" alt="" coords="497,332,664,357"/>
<area shape="rect" href="setup__scr__home_8c.html#a9e86b57f14343f1fdf1b6450fbcdef08" title="创建主桌面" alt="" coords="331,181,449,207"/>
<area shape="rect" href="ui_8c.html#a42bb09ef137aaeb1733173f3a88ccc85" title="UI 初始化" alt="" coords="227,132,283,157"/>
<area shape="rect" href="ui__event_8c.html#aab07f167804a29f9a34de078552c2fee" title="主桌面注册事件回调" alt="" coords="737,281,883,307"/>
<area shape="rect" href="ui__event_8c.html#a994ade1f62e3df92bae5eda56445c58e" title="M0 / M4 Show 页退出按钮回调" alt="" coords="1580,107,1727,132"/>
<area shape="rect" href="ui__event_8c.html#a905108d92ce4fd3bccf05e1aec5c24bd" title="M0 / M4 芯片具体型号介绍展示页注册事件回调" alt="" coords="1373,107,1532,132"/>
<area shape="rect" href="setup__scr__m0__m4_8c.html#a3f8c5e10b9dbf61ec407b6d84a885ab7" title="创建 M0 / M4 芯片具体型号介绍展示页" alt="" coords="1179,107,1309,132"/>
<area shape="rect" href="ui__event_8c.html#aa79ab1e226edfa66cf11eb85278bbc62" title="M0 页 跳转 M0_SHOW 页的按钮回调" alt="" coords="963,83,1107,108"/>
<area shape="rect" href="ui__event_8c.html#a4cc241fe1f2755f3c46c7dadbd3f58e2" title="M4 页 跳转 M4_SHOW 页的按钮回调" alt="" coords="963,181,1107,207"/>
<area shape="rect" href="ui__event_8c.html#a3d4333831962ec3ffc6e449faad388f7" title="主桌面 M0 页注册事件回调" alt="" coords="719,83,901,108"/>
<area shape="rect" href="setup__home__page__m0_8c.html#aa198ac34b1b6fa9f86d497cc3baf1d19" title="创建 M0 页" alt="" coords="504,83,657,108"/>
<area shape="rect" href="ui__event_8c.html#a6dbae8eeb24298bef6c9090399d4f88c" title="主桌面 M4 页注册事件回调" alt="" coords="719,231,901,256"/>
<area shape="rect" href="setup__home__page__m4_8c.html#afb77653567b2b50aef74a97266462f0c" title="创建 M4 页" alt="" coords="504,231,657,256"/>
<area shape="rect" href="ui__event_8c.html#a7356df791bd9a4545b909645db43f2f1" title="主桌面下的四个页面 Home / Back 键的事件回调( H B )" alt="" coords="965,132,1105,157"/>
<area shape="rect" href="ui__event_8c.html#ae39dc4b65d8a15dbb98e2321040443a9" title="主桌面 PD 页注册事件回调" alt="" coords="721,181,899,207"/>
<area shape="rect" href="ui__event_8c.html#a4e9e72dc1392fbfa791b66d58f43cad0" title="主桌面 PP 页注册事件回调" alt="" coords="721,132,899,157"/>
<area shape="rect" href="setup__home__page__pd_8c.html#ab3e09574fd12d91ac7158b266241f565" title="创建 Product 页" alt="" coords="506,181,655,207"/>
<area shape="rect" href="setup__home__page__pp_8c.html#a2dc049611b8a6a5e649913c9ead4dc72" title="创建 Picture 页" alt="" coords="506,132,655,157"/>
<area shape="rect" href="ui__event_8c.html#a779aa5b010979e9e3cff8d431d88112b" title="tabview 下属各 tab&#45;page 的事件回调" alt="" coords="1777,259,1911,284"/>
</map>
</div>

</div>
</div>
<a id="a2c6b5bc8fb41f77bb9f814eba2865387" name="a2c6b5bc8fb41f77bb9f814eba2865387"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c6b5bc8fb41f77bb9f814eba2865387">&#9670;&#160;</a></span>fsm_state_set()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a> fsm_state_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structfsm__t.html">fsm_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>切换当前状态 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fsm</td><td>: 状态机句柄 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">state</td><td>: 期望状态 </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
  <table class="retval">
    <tr><td class="paramname">详见</td><td>fsm_result 枚举 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="posix__fsm_8c_source.html">posix_fsm.c</a> 第 <a class="el" href="posix__fsm_8c_source.html#l00054">54</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h_a2c6b5bc8fb41f77bb9f814eba2865387_cgraph.png" border="0" usemap="#aposix__fsm_8h_a2c6b5bc8fb41f77bb9f814eba2865387_cgraph" alt=""/></div>
<map name="aposix__fsm_8h_a2c6b5bc8fb41f77bb9f814eba2865387_cgraph" id="aposix__fsm_8h_a2c6b5bc8fb41f77bb9f814eba2865387_cgraph">
<area shape="rect" title="切换当前状态" alt="" coords="5,31,109,56"/>
<area shape="rect" href="pthread__lock_8h.html#a5b24d442627e9343245d4a44daa81ada" title="加锁" alt="" coords="165,5,303,31"/>
<area shape="rect" href="pthread__lock_8h.html#a4f08153d45685a64dd5901e150b988ef" title="解锁" alt="" coords="157,55,311,80"/>
</map>
</div>

</div>
</div>
<a id="a249b00e99d18d8fd190204d78b2eab9f" name="a249b00e99d18d8fd190204d78b2eab9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a249b00e99d18d8fd190204d78b2eab9f">&#9670;&#160;</a></span>fsm_event_handler_get()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a> fsm_event_handler_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structfsm__t.html">fsm_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="posix__fsm_8h.html#afbb49b7791a06820386f19c692dd5cc0">fsm_event_cb</a> *&#160;</td>
          <td class="paramname"><em>action</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>通过该方法获取在当前状态下, 指定事件到来时的对应动作处理回调 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fsm</td><td>: 状态机句柄 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>: 触发事件 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fsm_event_cb</td><td>: 动作执行回调 </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
  <table class="retval">
    <tr><td class="paramname">详见</td><td>fsm_result 枚举 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="posix__fsm_8c_source.html">posix_fsm.c</a> 第 <a class="el" href="posix__fsm_8c_source.html#l00071">71</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h_a249b00e99d18d8fd190204d78b2eab9f_cgraph.png" border="0" usemap="#aposix__fsm_8h_a249b00e99d18d8fd190204d78b2eab9f_cgraph" alt=""/></div>
<map name="aposix__fsm_8h_a249b00e99d18d8fd190204d78b2eab9f_cgraph" id="aposix__fsm_8h_a249b00e99d18d8fd190204d78b2eab9f_cgraph">
<area shape="rect" title="通过该方法获取在当前状态下, 指定事件到来时的对应动作处理回调" alt="" coords="5,31,160,56"/>
<area shape="rect" href="pthread__lock_8h.html#a5b24d442627e9343245d4a44daa81ada" title="加锁" alt="" coords="215,5,354,31"/>
<area shape="rect" href="pthread__lock_8h.html#a4f08153d45685a64dd5901e150b988ef" title="解锁" alt="" coords="208,55,361,80"/>
</map>
</div>

</div>
</div>
<a id="a0b1b28d5d26c97b4c934f7822c1a7a04" name="a0b1b28d5d26c97b4c934f7822c1a7a04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b1b28d5d26c97b4c934f7822c1a7a04">&#9670;&#160;</a></span>fsm_event_exec()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="posix__fsm_8h.html#a21f736acd6f712522de85c096c7ec091">fsm_result</a> fsm_event_exec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structfsm__t.html">fsm_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>当指定事件触发时, 状态机会自动寻找并调用对应的动作处理回调, 从而完成状态转移 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fsm</td><td>: 状态机句柄 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>: 触发事件 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>: 事件参数 </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
  <table class="retval">
    <tr><td class="paramname">详见</td><td>fsm_result 枚举 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="posix__fsm_8c_source.html">posix_fsm.c</a> 第 <a class="el" href="posix__fsm_8c_source.html#l00098">98</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_cgraph.png" border="0" usemap="#aposix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_cgraph" alt=""/></div>
<map name="aposix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_cgraph" id="aposix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_cgraph">
<area shape="rect" title="当指定事件触发时, 状态机会自动寻找并调用对应的动作处理回调, 从而完成状态转移" alt="" coords="5,31,120,56"/>
<area shape="rect" href="pthread__lock_8h.html#a5b24d442627e9343245d4a44daa81ada" title="加锁" alt="" coords="175,5,314,31"/>
<area shape="rect" href="pthread__lock_8h.html#a4f08153d45685a64dd5901e150b988ef" title="解锁" alt="" coords="168,55,321,80"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="posix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_icgraph.png" border="0" usemap="#aposix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_icgraph" alt=""/></div>
<map name="aposix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_icgraph" id="aposix__fsm_8h_a0b1b28d5d26c97b4c934f7822c1a7a04_icgraph">
<area shape="rect" title="当指定事件触发时, 状态机会自动寻找并调用对应的动作处理回调, 从而完成状态转移" alt="" coords="2128,56,2243,81"/>
<area shape="rect" href="load__mv_8c.html#a4baf0d2c0d6e1fea0ddb9867c9747f8b" title="音视频任务处理" alt="" coords="1961,5,2080,31"/>
<area shape="rect" href="load__mv_8c.html#a7dd8d59698dc593d41250fc09a0ae5a5" title="打开源文件启动播放" alt="" coords="1797,56,1891,81"/>
<area shape="rect" href="load__mv_8c.html#ab03d657977c16952b0a16e589fbd6e71" title="结束播放, 释放所占用的资源" alt="" coords="1971,132,2071,157"/>
<area shape="rect" href="ui__boot_8c.html#ad915e3f7b5aab86e375414a5844c500a" title="挂载文件系统以完成本地素材检测, 并将其导入至 SDRAM , 同时实现开机动画/视频效果" alt="" coords="1621,56,1685,81"/>
<area shape="rect" href="main_8c.html#a8f1efe6291a27ae9b326f0c8a236c102" title="Go to User App Execute" alt="" coords="104,132,179,157"/>
<area shape="rect" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="C_Main" alt="" coords="5,132,56,157"/>
<area shape="rect" href="ui__event_8c.html#a00e13aa90322d785281749032e468a01" title="清理首页的视频" alt="" coords="1163,157,1325,183"/>
<area shape="rect" href="ui__event_8c.html#a201743dfea0db58797dca624b7d9c5e5" title="退出 M0 / M4 SHOW 页前的清理、释放资源" alt="" coords="1775,259,1913,284"/>
<area shape="rect" href="ui__event_8c.html#a327a85392000232adf5057ea3bcd0322" title="退出 PP 页前的清理、释放资源" alt="" coords="1189,208,1299,233"/>
<area shape="rect" href="ui__event_8c.html#a58a9ebadd92a9ee7765fea889ed07073" title="主桌面下 Home 页四个跳转按钮的事件回调" alt="" coords="956,107,1115,132"/>
<area shape="rect" href="ui__event_8c.html#a40e95f44ce28a5bf2fb6a5d8cc725232" title="主桌面下 Home 页的 LOGO 按钮回调(视频)" alt="" coords="960,156,1111,181"/>
<area shape="rect" href="ui__event_8c.html#a4f51ebc6c5bd5d4bdc6e80e1d5b3f554" title="tabview 的事件回调" alt="" coords="974,205,1097,231"/>
<area shape="rect" href="ui__event_8c.html#ac0feb967035c8b6b1949cd42c92cbc69" title="主桌面 Home 页注册事件回调" alt="" coords="712,107,908,132"/>
<area shape="rect" href="setup__home__page__home_8c.html#a236ec2e4ba252c597a6c8d695eb5e825" title="创建 Home 页" alt="" coords="497,107,664,132"/>
<area shape="rect" href="setup__scr__home_8c.html#a9e86b57f14343f1fdf1b6450fbcdef08" title="创建主桌面" alt="" coords="331,208,449,233"/>
<area shape="rect" href="ui_8c.html#a42bb09ef137aaeb1733173f3a88ccc85" title="UI 初始化" alt="" coords="227,157,283,183"/>
<area shape="rect" href="ui__event_8c.html#aab07f167804a29f9a34de078552c2fee" title="主桌面注册事件回调" alt="" coords="507,157,654,183"/>
<area shape="rect" href="ui__event_8c.html#a994ade1f62e3df92bae5eda56445c58e" title="M0 / M4 Show 页退出按钮回调" alt="" coords="1580,259,1727,284"/>
<area shape="rect" href="ui__event_8c.html#a905108d92ce4fd3bccf05e1aec5c24bd" title="M0 / M4 芯片具体型号介绍展示页注册事件回调" alt="" coords="1373,283,1532,308"/>
<area shape="rect" href="setup__scr__m0__m4_8c.html#a3f8c5e10b9dbf61ec407b6d84a885ab7" title="创建 M0 / M4 芯片具体型号介绍展示页" alt="" coords="1179,307,1309,332"/>
<area shape="rect" href="ui__event_8c.html#aa79ab1e226edfa66cf11eb85278bbc62" title="M0 页 跳转 M0_SHOW 页的按钮回调" alt="" coords="963,307,1107,332"/>
<area shape="rect" href="ui__event_8c.html#a4cc241fe1f2755f3c46c7dadbd3f58e2" title="M4 页 跳转 M4_SHOW 页的按钮回调" alt="" coords="963,356,1107,381"/>
<area shape="rect" href="ui__event_8c.html#a3d4333831962ec3ffc6e449faad388f7" title="主桌面 M0 页注册事件回调" alt="" coords="719,307,901,332"/>
<area shape="rect" href="setup__home__page__m0_8c.html#aa198ac34b1b6fa9f86d497cc3baf1d19" title="创建 M0 页" alt="" coords="504,307,657,332"/>
<area shape="rect" href="ui__event_8c.html#a6dbae8eeb24298bef6c9090399d4f88c" title="主桌面 M4 页注册事件回调" alt="" coords="719,356,901,381"/>
<area shape="rect" href="setup__home__page__m4_8c.html#afb77653567b2b50aef74a97266462f0c" title="创建 M4 页" alt="" coords="504,356,657,381"/>
<area shape="rect" href="ui__event_8c.html#a7356df791bd9a4545b909645db43f2f1" title="主桌面下的四个页面 Home / Back 键的事件回调( H B )" alt="" coords="965,257,1105,283"/>
<area shape="rect" href="ui__event_8c.html#ae39dc4b65d8a15dbb98e2321040443a9" title="主桌面 PD 页注册事件回调" alt="" coords="721,257,899,283"/>
<area shape="rect" href="ui__event_8c.html#a4e9e72dc1392fbfa791b66d58f43cad0" title="主桌面 PP 页注册事件回调" alt="" coords="721,208,899,233"/>
<area shape="rect" href="setup__home__page__pd_8c.html#ab3e09574fd12d91ac7158b266241f565" title="创建 Product 页" alt="" coords="506,257,655,283"/>
<area shape="rect" href="setup__home__page__pp_8c.html#a2dc049611b8a6a5e649913c9ead4dc72" title="创建 Picture 页" alt="" coords="506,208,655,233"/>
</map>
</div>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5
</small></address>
</body>
</html>
